package com.duqc.designpattern.decorator;

import com.duqc.util.MD5Util;
import lombok.extern.slf4j.Slf4j;

/**
 * @ClassName MD5EncryptionDecorator
 * @Description 装饰者实现类
 * @Author duqc
 * @Date 2021/5/11
 **/
@Slf4j
public class MD5EncryptionDecorator extends EncryptionDecorator {

    protected MD5EncryptionDecorator(EncryptionBase encryptionBase) {
        //有参构造器获取到参数，调用父类的有参构造器
        //当下面encrypt()方法里调用父类的加密算法就会调用传入的算法实现类的加密算法
        super(encryptionBase);
    }

    @Override
    public String encrypt(String string, String password) {
        //首先调用分类的加密方法，得到父类的算法加密后的结果
        String encrypt = super.encrypt(string, password);
        log.info("使用MD5加密");
        return MD5Util.encryptByMD5(encrypt, password);
    }
}
